var message = {
	ERR_TIMEOUT  : "The request timed out, please resubmit!",
	LOGOUT       : "Вы действительно хотите покинуть панель управления?",
	DEL_SUBMIT   : "Вы действительно желаете удалить выбранные записи?",
	PASS_NOT_S	 : "Введенные пароли не совпадают!",
	PASS_SMALL   : "Введен короткий пароль! Пароль должен состоять минимум из 6 символов!",
	SUCCESS_SAVE : "Успешно сохранено!",
	DEL_IMAGE    : "Вы уверены, что хотите удалить изображение?",
	I_ACKNOWLEGE : "Подтверждаете выбранную область изображения?",
	PLEASE_CROP  : "Пожалуйста, выберите область!"
};

$(function()
{
	$.fn.expand = function (duration, callback) {
        this.each(function (i) {
            var element = $(this);
            element.css('display', 'block');
            element.stop(true).css({
                'overflow': '',
                'height': '',
                'paddingTop': '',
                'paddingBottom': '',
                'borderTopWidth': '',
                'borderBottomWidth': '',
                'marginTop': '',
                'marginBottom': ''
            });
            var height = element.height();
            var paddingTop = parseInt(element.css('padding-top'));
            var paddingBottom = parseInt(element.css('padding-bottom'));
            var marginTop = parseInt(element.css('margin-top'));
            var marginBottom = parseInt(element.css('margin-bottom'));
            var css = {
                'overflow': 'hidden',
                'height': 0,
                'paddingTop': 0,
                'paddingBottom': 0
            };
            var anim = {
                'height': height,
                'paddingTop': paddingTop,
                'paddingBottom': paddingBottom
            };
            if (!$.browser.msie || $.browser.version > 8) {
                var borderTopWidth = parseInt(element.css('border-top-width'));
                var borderBottomWidth = parseInt(element.css('border-bottom-width'));
                css.borderTopWidth = '1px';
                css.borderBottomWidth = '1px';
                anim.borderTopWidth = borderTopWidth;
                anim.borderBottomWidth = borderBottomWidth;
            }
            var prev = element.prev();
            if (prev.length === 0 && parseInt(element.css('margin-bottom')) + marginTop !== 0) {
                css.marginTop = Math.min(0, marginTop);
                css.marginBottom = Math.min(0, marginBottom);
                anim.marginTop = marginTop;
                anim.marginBottom = marginBottom;
            }
            element.stop(true).css(css).animate(anim, {
                'duration': duration,
                'complete': function () {
                    $(this).css({
                        'display': '',
                        'overflow': '',
                        'height': '',
                        'paddingTop': '',
                        'paddingBottom': '',
                        'borderTopWidth': '',
                        'borderBottomWidth': '',
                        'marginTop': '',
                        'marginBottom': ''
                    });
                    if (callback) {
                        callback.apply(this);
                    }
                    if ($.browser.msie && $.browser.version < 8) {
                        $(this).css('zoom', 1);
                    }
                }
            });
        });
        return this;
    };
	
	$.fn.fadeAndRemove = function (duration, callback) {
        this.animate({
            'opacity': 0
        }, {
            'duration': duration,
            'complete': function () {
                if ($(this).css('position') == 'absolute') {
                    if (callback) {
                        callback.apply(this);
                    }
                    $(this).remove();
                } else {
                    $(this).slideUp(duration, function () {
                        if (callback) {
                            callback.apply(this);
                        }
                        $(this).remove();
                    });
                }
            }
        });
        return this;
    };
	
	/* Ajax Settings */
	$.ajaxSetup({
		type:"POST",
		cache:false,
		error: function(request, error, errorThrown) {	
			switch(error) {
				case "timeout":
					notify(message.ERR_TIMEOUT);
				break;				
				default:
					notify("ERROR: "+errorThrown);
				break;
			}			
		}
	});	
	
	/* Create Directory */
	$(".create_directory").live("click", function(){		
		$.ajax({			
			dataType : "text",
			data     : {folder:$(this).attr("folder")},
			url      : "/ajax/admin/create_folder.backend.php",
			success: function(data){
				notify(data);
			}
		});
	});
	
	/* Change form */
	$("a.change_button").live("click", function(){
		$("#pages_form_change").submit();
	});
	
	/* Hide|Show */
	$('input[type=checkbox].mini-switch').hide().after('<span class="mini-switch-replace"></span>').next().click(function(){
		$(this).prev().click();
	});
	
	$('input[type=checkbox].mini-switch-delete').hide().after('<span class="mini-switch-replace-delete"></span>').next().click(function(){
		$(this).prev().click();
		powerChecked({typeClick:"once"});
	});
	
	/* Нажимаем кнопку удалить */
	$("a.delete_form_return").live("click", function(){		
		if(confirm(message.DEL_SUBMIT)) {
			$("#form_delete_submit").submit();
		}		
		return false;
	});
	
	/* Повернуть изображение */
	$("a.rotate").live("click", function()
	{		
		var ThisImage  = $(this).parent().prev().find("img");
		var PathImage  = ThisImage.attr("src");
		var TypeRotate = $(this).attr("rel");
		var RandNumber = Math.random();
		
		$.post('/ajax/admin/crop.backend.php',{
			"Process"    : "rotate",
			"PathImage"  : PathImage,
			"TypeRotate" : TypeRotate
		},
		function(data) {
			if(data.alert) {
				alert(data.alert);
			}
			else {
				ThisImage.attr("src", PathImage+"?r="+RandNumber);			
			}						
		}, "json");
	});
	
	/* Функция удаления фото */
	$("a.delPhoto").live("click",function(){								
	   var del = $(this);
	   var filepath = del.attr("rel");								
	   var num      = del.attr("num");
	   var prefixx  = del.attr("prefixx");
	   var picture  = del.attr("picture");								
	   var del_el   = $("#"+picture+"_"+prefixx+"resp_uploads"+num);					 						 
	   if(confirm(message.DEL_IMAGE)) {	   							 						 
		   $.post("/ajax/admin/deletefile.backend.php", {"name":filepath}, function(data) {
			   del_el.append(data);
			   setTimeout(function(){del_el.fadeOut();}, 1000);
		   });
	   }							
	});
	/* Функция удаления файлов */	
	$("a.deleteFile").live("click",function()
	{		
		var _dialog = $("#dialog_alert_delete_file");	
		var _this = $(this);
		var _path = _this.attr("rel");
		_dialog.text(message.DEL_IMAGE);
		_dialog.dialog({
			modal     : true,
			resizable : false,
			width     : 350,
			title     : "Внимание!",
			buttons : {
				"Удалить":function() {
					$.post("/ajax/admin/deletefile.backend.php", {
						"name":_path
					}, function(data) {
						_this.parent().html(data).delay(2000).fadeOut();										
						_dialog.dialog("close");
				   });			
				},
				"Отмена":function(){
					_dialog.dialog("close");				
				}
			}
		});					
	});
	
	/* JQuery Crop */	
	function checkCoords(id, ww, hh, prefixx, processor_del) {		
		if (parseInt(jQuery('#w_'+prefixx+id).attr("value"))>0) {		
			if(!confirm(message.I_ACKNOWLEGE)) {
				return false; 
			}
			/* Remove Area */
			$('.cropimage_'+prefixx+ww+id_e).imgAreaSelect({remove:true});			
			
			var el_inner = $(".image_before_crop_image_"+prefixx+ww+id);
			var i_origin = el_inner.find("img").attr("src");
			var i_trumb  = el_inner.find("img").attr("tsrc");
			$.post('/ajax/admin/crop.backend.php',{
				"x":jQuery('#x_'+prefixx+id).attr("value"),
				"y":jQuery('#y_'+prefixx+id).attr("value"),
				"w":jQuery('#w_'+prefixx+id).attr("value"),
				"h":jQuery('#h_'+prefixx+id).attr("value"),
				"i_origin":i_origin,
				"i_trumb":i_trumb,
				"ww_t":ww,
				"hh_t":hh,
				"num":id,
				"prefixx":prefixx,
				"processor_del":processor_del
			},function(data){
				
				if(data != null) {
					if(data.err) {						
						alert(data.err);				
					}
					else if(data.success)
					{					
						el_inner.empty().next().remove()
						el_inner.next().remove();
						$('<img />').attr({
							"src" : data.success.trumb,
							"width" : data.success.new_width
						}).appendTo(el_inner);
												
						$('<a title="Удалить превью" href="javascript:void(0);" />').attr({
							"picture" : "trumbnail" + data.success.new_width + data.success.number,
							"class"   : "delPhoto",
							"prefixx" : data.success.prefix,
							"rel"     : data.success.trumb,
							"num"     : data.success.number
						}).html('<img src="/templates/admin/img/cancel.png" />').appendTo(el_inner);					
					}
				}
			}, "json");		
			return true;
		}
		notify(message.PLEASE_CROP);
		return false;
	};
	
	function init_jcrop(prefixx, id_e, ww, hh, ww_m, hh_m)
	{	
		$('.cropimage_'+prefixx+ww+id_e).imgAreaSelect({
			maxWidth: ww_m,
			maxHeight: hh_m,
			handles: true,
			show: true,			
			aspectRatio:((ww/hh)+":1"),
			onSelectEnd: function (img, selection) {				
				jQuery('#x_'+prefixx+id_e).attr("value", selection.x1);
				jQuery('#y_'+prefixx+id_e).attr("value", selection.y1);
				jQuery('#w_'+prefixx+id_e).attr("value", selection.x2);
				jQuery('#h_'+prefixx+id_e).attr("value", selection.y2);				
			} 
		});		
	}		
	
	jQuery(".wo_crop_button").live("click", function() {
		var ww = hh = ww_m = hh_m = mess_crop_but = id_e = prefixx = '', processor_del = '', e;
		
		e = $(this);		
		id_e = e.attr("id");
		ww = e.attr("ww");	
		hh = e.attr("hh");		
		ww_m = e.attr("ww_m");	
		hh_m = e.attr("hh_m");
		prefixx = e.attr("prefixx");
		processor_del = e.attr("processor_del");	
		
		mess_crop_but = {
			"edit":"Выбрать область",
			"crop":"Обрезать изображение"
		};
				
		switch(e.text()) {
			case mess_crop_but.edit:			
				e.text(mess_crop_but.crop);				
				init_jcrop(prefixx, id_e, ww, hh, ww_m, hh_m);		
			break;			
			case mess_crop_but.crop:
				checkCoords(id_e, ww, hh, prefixx, processor_del);
			break;			
		}
	});	
	
	/* Выход из админ */
	$(".logout a").bind("click", function(){
		if(!confirm(message.LOGOUT)) {
			return false;
		}
	});
	
	/* Menu left */
	$(".top_plus").live("click",function()
	{
		var _this    = $(this).parent();		
		var engine   = _this.attr('engine');
		var table    = _this.attr('table');		
		var parent   = _this.attr('parent');
		var iterator = _this.attr('iterator');
		var m_param  = _this.attr('m_param');
		var mode     = _this.attr('class');
		_this.after('<div class="ajax'+mode+'"><div class="indicator_load">Загрузка...</div></div>');		
		$.post('/ajax/admin/'+engine+'.backend.php',{
			'iterator' : iterator,
			'parent'   : parent,
			'table'    : table,
			'm_param'  : m_param,
			'section'  : section
		},function(data){
			$(".ajax"+mode).html(data);
		});		
		$(this).hide();			
	});	
	
	$(".menu_toogle").live("click",function()
	{
		var _this = $(this).parent();
		var _next = _this.next();		
		if(_next.is(':hidden')) {
			$(this).removeClass('plus').addClass('minus');
		}
		else {
			$(this).removeClass('minus').addClass('plus');
		}		
		$(_next).toggle();
	});		   
	/* END Menu left */
						   
	/* Checkbox toggle Show	/ Hide */	   
	$("a.select_show").live("click",function()
	{		
		var dialog_el = $("#dialog_alert");
		dialog_el.text("Вы действительно желаете включить/отключить запись(и)?");
		dialog_el.dialog({
			modal:true,
			resizable:false,
			width:350,
			title  : "Внимание!",
			buttons:{
				"ОК":function(){
					$("input.showhide").each(function(){			
						if($(this).attr('checked')) {
							$(this).attr('checked',false);
						}
						else {
							$(this).attr('checked',true);	
						}
						var id = $(this).attr("id");
						$.post('/ajax/admin/showhide.backend.php',{id:id},function(data){
							notify(data, {closeDelay:1500});						
						});						
					});
					dialog_el.dialog("close");				
				},
				"Отмена":function(){
					dialog_el.dialog("close");				
				}
			}
		});
	});	
	
	/* Скрываем запись при нажатии на конкретную */
	$("input.showhide").live("click",function()
	{		
		var dialog_el = $("#dialog_alert");	
		var this_elem = $(this);
		var curr_stat = this_elem.attr("checked");
		dialog_el.text("Вы действительно желаете включить/отключить запись?");
		dialog_el.dialog({
			modal:true,
			resizable:false,
			width:350,
			title  : "Внимание!",
			buttons:{
				"ОК":function(){
					var id = this_elem.attr("id");					
					$.post('/ajax/admin/showhide.backend.php',{id:id},function(data){
						notify(data, {closeDelay:1500});
						dialog_el.dialog("close");						
					});					
				},
				"Отмена":function(){
					if(curr_stat == "checked") {
						this_elem.attr("checked", true);
					} else {
						this_elem.attr("checked", false);
					}
					dialog_el.dialog("close");				
				}
			}
		});		
	});	
	
	/* Checkbox toggle Delete */
	$("a.select_delete").live("click", function() {
		powerChecked({typeClick:"all"});
	});
	
	$("input[name='del[]']").live("change", function() {
		powerChecked({typeClick:"once"});
	});
	
	/* Календарь */
	$.datepicker.regional['ru'] = {
		closeText: 'Закрыть',
		prevText: '&#x3c;Пред',
		nextText: 'След&#x3e;',
		currentText: 'Сегодня',
		monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
		'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
		monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
		'Июл','Авг','Сен','Окт','Ноя','Дек'],
		dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
		dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
		dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
		weekHeader: 'Нед',
		dateFormat: 'yy-mm-dd',
		firstDay: 1,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''};
	$.datepicker.setDefaults($.datepicker.regional['ru']);
	$('.datepicker').datepicker({
		showAnim:"fold",
		showOn: "button",
		buttonImage: "/templates/admin/img/icons/calendar.gif",
		buttonImageOnly: true,
		changeMonth: true,
		changeYear: true,
		yearRange: '1900:2020'
	});
	
	/* Табы */
	$('#admin_tabs_main_content').bind("tabsshow", function(event, ui) {
		setTimeout(function() {
			var getIdSelectedTabs = $(".ui-tabs li.ui-tabs-selected > a").attr("href");			
			if((getIdSelectedTabs != undefined) && $(getIdSelectedTabs+" textarea.elrte_wo")[0]) {			
				$(getIdSelectedTabs+" textarea.elrte_wo").elrte({
					absoluteURLs: false,
					cssClass : 'el-rte',
					lang     : 'ru',
					height   : 250,
					toolbar  : 'maxi',
					cssfiles : ['/templates/admin/css/elrte.css'],
					fmOpen : function(callback) {
						$('<div id="myelfinder" />').elfinder({
							url : '/templates/admin/js/elfinder/connectors/php/connector.php',
							lang : 'ru',
							dialog : {
								width : 900,
								modal : true,
								title : 'elFinder - file manager for web'
							},
							closeOnEditorCallback : true,
							editorCallback : callback
						})
					}
				});		
			}
		}, 1000);
	});	
	$('#admin_tabs_main_content').tabs({
		cookie : {
			expires:7,
			path : '/admin/'
		}
	});
	/* END Табы */
	
	/* Page Td Class */
	table_color("nowraptable");	
	
	/* Кнопки */
	$('.ui_wo_buttons, .edit-item-pages').hover(
		function() { $(this).addClass('ui-state-hover'); }, 
		function() { $(this).removeClass('ui-state-hover'); }
	);
});
